There exists many time critical processes which have to be processed in real-time and additionally in a very narrow time range. Those processes can be found, for example, in the field of processing transactions, which have to be performed by central IT-systems of a bank, for example. Those IT-systems, which are often based on real-time processing of data objects stored on a relational database, face a performance critical task if mass transactions have to be bundled due to different criteria or characteristics for further processing. The term “database” has many interpretations. One definition is a “collection of persistent data.” A relational database is one in which the data consists of a “collection of tables related to each other through common values.” The two most prominent characteristics of a relational database are: (1) data stored in tables, and (2) relationships between tables. A table (a.k.a. an entity or relation) is a collection of rows and columns. A row (a.k.a. a record or tuple) represents a collection of information about a separate item (e.g., a customer). A column (a.k.a. a field or attribute) represents the characteristics of an item (e.g., the customer's name or phone number). A relationship is a logical link between two tables. A relational database management system (RDBMS) uses matching values in multiple tables to relate the information in one table with the information in the other table. The presentation of data as tables is a logical construct; it is independent of the way the data is physically stored on disk. A master table contains permanent and dynamic information about entities, ledgers and subsidiary ledgers.
In order to achieve mass processing capabilities, such IT-systems use the technical possibility of dividing up single performance critical processes and, thus, running several processes in parallel on a plurality of processors. Such use of several processes in parallel enhances the overall performance only if the different processes are not working simultaneously on the same physical data objects on the relational database.
For parallel processing the mass transactions by a plurality of processors, it is useful to create independent working packages. Those working packages, in the following called “bundles,” are created with respect to certain predefined characteristics, such as amount of payment, transaction code, or currency. The bundles themselves can further be subject to certain constraints. Those constraints can refer to a total number of transactions which can be bundled up in one single bundle or to a maximum sum of the amount of payment of all those transactions. Those constraints are dynamically controlled during the generation of a bundle by using a bundle specific master table containing master data of the bundle. A critical issue is based on the fact that as long as any one of the processors has access to the master table, the access is blocked for any further processor. Thus, the creation of a bundle can become a very time consuming object.
It is possible, for example, that single payment transactions have to be bundled due to criterias such as amount, currency, and transaction code and, each bundle must have exactly “1,000” transactions or a maximum sum of all transactions within the bundle of “1,000,000 EUR.” In a IT-System where the processing of the single transactions is done using parallel processes, the system may have to find out for each transaction which bundle the transaction belongs to, and within the same process evaluate by accessing the master table if the bundle has already reached one of the criteria like maximum number of transactions or maximum total sum of transactions. This means, as already indicated, that several processes would access the same master table of the bundle in order to evaluate and update the information of number of transactions and total sum of the transactions in the bundle. All those parallel processes contribute when creating the bundle. Thus, from a performance point of view, the master table of each bundle to be created represents a bottleneck.
The scalability of a real-time IT-system working with such a traditional approach is limited as adding new parallel processes will not enhance the overall performance of the system in a linear way.
In the banking world today, most mass processing systems dealing with the requirement of bundling transactions due to different characteristics are running on mainframes. Here, the bundling is done via batch sorting the files into other files which then represent the bundles. There is no relational database involved and, therefore, there are no bottlenecks in the process.
However, in real-time processing, a relational database is indispensable. Therefore, it would be desirable to have a possibility to overcome the bottleneck caused by the master table of the bundle in case that a relational database is involved.